package com.wgy.day23.泛型;

import java.util.ArrayList;
import java.util.Collection;

public class Demo06Generic通配符高级使用 {
    public static void main(String[] args) {
        Collection<Integer> list1 = new ArrayList<Integer>();
        Collection<String> list2 = new ArrayList<String>();
        Collection<Number> list3 = new ArrayList<Number>();
        Collection<Object> list4 = new ArrayList<Object>();
        method1(list1);
        //   method1(list2);  编译报错 受到泛型的限制
        method1(list3);
        //   method1(list4);

        //    method2(list1);
        //    method2(list2);
        method2(list3);
        method2(list4);

    }
    /*类与类之间的继承关系:
    Integer extends Number extends Object
    String extends Object
    */

    //泛型的上限:调用的对象的类型必须是Number类及其子类
    public static void method1(Collection<? extends Number> coll) {
    }


    //泛型的上限:调用的对象的类型必须是Number类及其父类
    public static void method2(Collection<? super Number> coll) {
    }


}
